﻿using System;
using System.Collections.Generic;
using System.Text;
using SwinGame;

namespace Survivor.src
{
    abstract class Entity
    {
        Camera _camera;
        Entity _owner;
        Entity _target;
        Player _player;
        Sprite _sprite;
        TerrainManager _terrainManager;
        UnitManager _unitManager;
        World _world;

        Entity(Camera cam, Player player, Sprite s, TerrainManager tm, UnitManager um, World w)
        {
            _camera = cam;
            _player = player;
            _sprite = s;
            _terrainManager = tm;
            _unitManager = um;
            _world = w;
        }

        internal Camera Camera
        {
            get { return _camera; }
            set {}
        }
        internal Entity Owner
        {
            get { return _owner; }
            set { _owner = value; }
        }
        internal Entity Target
        {
            get { return _target; }
            set { _target = value; }
        }
        internal Player Player
        {
            get { return _player; }
            set { }
        }
        public Sprite Sprite
        {
            get { return _sprite; }
            set { _sprite = value; }
        }
        internal TerrainManager TerrainManager
        {
            get { return _terrainManager; }
            set { }
        }
        internal UnitManager UnitManager
        {
            get { return _unitManager; }
            set { }
        }
        internal World World
        {
            get { return _world; }
            set { }
        }

        public abstract void Draw(double dt);
        public abstract void Init();
        public abstract void Load();
        public abstract void Update(double dt);
        
    }
}
